1. Field of the Invention
The present invention is directed to technology for synchronizing and flushing the contents of cache memories.
2. Description of the Related Art
The Internet has altered the economic landscape, and companies are experiencing a fundamental shift in how they do business. Business processes involve complex interactions between companies and their customers, suppliers, partners and employees. For example, businesses interact constantly with their customers—often other businesses—to provide information on product specification and availability. Businesses also interact with vendors and suppliers in placing orders and obtaining payments. To meet new challenges and leverage opportunities, while reducing their overall cost-of-interactions, many organizations are migrating to network-based business processes and models. Among the most important of these is Internet-based E-business.
In addition to customer information, businesses must also make a wide array of information and services available to their employee populations, generating further interactions. This information can include both business-related and personal information. E-business is also challenged with cohesively managing disparate end user, application, content, policy, and administrative information. For all of these types of computer network-based information, as well as others, it is desirable to minimize the time spent retrieving the information to ensure data is available quickly and accurately.
As the volume of data accessible to users through computer networks continues to surge, so has the number of end users attempting to access this data. As a result, the burden on access systems has increased significantly, which can cause degradations in system performance. These concerns become particularly acute in the world of E-commerce.
Cache memories provide one way to minimize data retrieval time. Caches (hardware or software) act as buffers, storing data that is frequently and/or recently accessed by various components of a network-based system. Once data is stored in a cache, various components of the system can quickly read information directly from the cache, rather than having to retrieve the data from an original source using a longer process. Generally speaking, data retrieved from a cache will be available much quicker than data retrieved from original sources.
However, when data is changed at an original source, previously cached versions of the data become stale. The cached data must be flushed to prevent usage of the stale data by components of the system. Cache flushing is particularly important in systems where users are authenticated or authorized for resources. For example, if changes occur to user information or rules used to authenticate or authorize users, any previously cached versions of the changed data must be flushed to prevent future authentication or authorizations from being performed using the stale data.
Furthermore, if many pieces of data are cached, flushing an entire cache can inadvertently delete data that has not been changed. This deletion of otherwise valid data can increase access times, forcing the components of the system to re-retrieve previously cached data from original sources. This can lead to slower performance and loss of confidence in the E-business system.
These problems become further complicated in Internet network-based computer systems where caches containing many disparate types of information may be found on multiple servers, Web Servers, and even Web Server plug-ins running on the Web Servers. Thus, there is a need for a means to flush stale cached data without interfering with otherwise valid cached data in network-based computer systems.